home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / alib / csup / math_support / ROM / bcint.asm next >
Encoding:
Assembly Source File  |  1994-02-14  |  3.0 KB  |  116 lines

  1.  
  2.  
  3. *          ************************************************ 
  4. *          **  Math Library C Compiler Interface         ** 
  5. *          **                                            ** 
  6. *          ************************************************ 
  7. ***********************************************************************
  8. **                                                                    *
  9. **   Copyright 1984, Amiga Computer Inc.   All rights reserved.       *
  10. **   No part of this program may be reproduced, transmitted,          *
  11. **   transcribed, stored in retrieval system, or translated into      *
  12. **   any language or computer language, in any form or by any         *
  13. **   means, electronic, mechanical, magnetic, optical, chemical,      *
  14. **   manual or otherwise, without the prior written permission of     *
  15. **   Amiga Computer Incorporated, 3350 Scott Blvd, Bld #7,            *
  16. **   Santa Clara, CA 95051                                            *
  17. **                                                                    *
  18. ***********************************************************************
  19.  
  20. * 3-26-86  Dale converted to use new greenhills compiler, cleaned up abit
  21. * 11:50 04-Jun-85 LAH Broke up math library to create ROM, RAM and Link.
  22. * 15:50 14-Apr-85 KBS Converted to V25 standard compatible library.
  23. * 09:35 28-Jan-85 MJS moved float/string conversion to V2xstr.asm
  24. * 14:41  1-Jan-85 MJS added float/string conversion
  25. * 16:00 12-Dec-84 MJS first version
  26. * 10:56 30-Dec-84 MJS version for RAM or ROM math library
  27.  
  28.         xref     _MathBaseOffset
  29.  
  30. *------ Basic Math Function Vector Offsets --------------------------
  31.  
  32.         xref    _LVOSPFix,_LVOSPFlt,_LVOSPCmp,_LVOSPTst,_LVOSPAbs
  33.         xref    _LVOSPNeg,_LVOSPAdd,_LVOSPSub,_LVOSPMul,_LVOSPDiv
  34.  
  35.         xdef    ffixi,fflti,ffltis                * C entries for basic math functions
  36.         xdef    fcmpi,fabsi,fnegi
  37.         xdef    faddi,fsubi,fmuli,fdivi
  38.         xdef    _abs
  39.  
  40. * new ones from Dale
  41. * added 3/26/86
  42. * these have parameters already in registers d0,d1
  43. * these are routines just for single precision FLOAT
  44.         xdef    fsfixi,fsdivi,fsaddi,fsmuli,fststi
  45.  
  46. shit_do:
  47.         add.l    _MathBaseOffset(a6),a0
  48.         move.l    4(sp),d1        * get second parameter
  49.         move.l    (sp),8(sp)        * setup return address
  50.         addq.l    #8,sp            * non-standard c-interface
  51.         jmp    (a0)
  52.  
  53. * hack stuff here
  54. fmuli:
  55.         lea    _LVOSPMul,a0
  56.         bra    shit_do
  57. faddi:
  58.         lea    _LVOSPAdd,a0
  59.         bra    shit_do
  60. fsubi:
  61.         lea    _LVOSPSub,a0
  62.         bra    shit_do
  63. fdivi:
  64.         lea    _LVOSPDiv,a0
  65.         bra    shit_do
  66. fcmpi:
  67.         lea    _LVOSPCmp,a0
  68.         bra    shit_do
  69.  
  70. fsmuli:
  71.         move.l    _MathBaseOffset(a6),a0
  72.         jmp    _LVOSPMul(a0)
  73.  
  74. fsaddi:
  75.         move.l    _MathBaseOffset(a6),a0
  76.         jmp    _LVOSPAdd(a0)
  77.  
  78. fssubi:
  79.         move.l    _MathBaseOffset(a6),a0
  80.         jmp    _LVOSPSub(a0)
  81.  
  82. fsdivi:
  83.         move.l    _MathBaseOffset(a6),a0
  84.         jmp    _LVOSPDiv(a0)
  85.  
  86. ffixi:
  87. fsfixi:
  88.         move.l    _MathBaseOffset(a6),a0
  89.         jmp    _LVOSPFix(a0)
  90.  
  91. fflti:
  92. ffltis:
  93.         move.l    _MathBaseOffset(a6),a0
  94.         jmp    _LVOSPFlt(a0)
  95.  
  96. fststi:
  97.         move.l    _MathBaseOffset(a6),a0
  98.         jmp    _LVOSPTst(a0)
  99.  
  100. _abs:
  101.         move.l    4(sp),d0
  102. fabsi:
  103.         move.l    _MathBaseOffset(a6),a0
  104.         jmp    _LVOSPAbs(a0)
  105.  
  106. fnegi:
  107.         move.l    _MathBaseOffset(a6),a0
  108.         jmp    _LVOSPNeg(a0)
  109.  
  110. fscmpi:
  111.         move.l    _MathBaseOffset(a6),a0
  112.         jmp    _LVOSPCmp(a0)
  113.  
  114.         end
  115.  
  116.